package org.db.admin.modules.sys.util;

import org.db.admin.modules.sys.entity.SysMenu;

import java.util.List;

/**
 * 菜单工具类
 *
 * @author 大兵
 * @date 2018-03-18 17:06
 **/
public class MenuUtil {
    /**
     * 对菜单进行排序
     *
     * @param list       排序后集合
     * @param sourcelist 排序前集合
     * @param parentId   父级id
     * @param cascade    是否多级
     */
    public static void sortList(List<SysMenu> list, List<SysMenu> sourcelist, String parentId, boolean cascade) {
        for (int i = 0; i < sourcelist.size(); i++) {
            SysMenu e = sourcelist.get(i);
            if (e.getParentId() != null && e.getParentId() != null
                    && e.getParentId().equals(parentId)) {
                list.add(e);
                if (cascade) {
                    // 判断是否还有子节点, 有则继续获取子节点
                    for (int j = 0; j < sourcelist.size(); j++) {
                        SysMenu child = sourcelist.get(j);
                        if (child.getParentId() != null && child.getParentId() != null
                                && child.getParentId().equals(e.getId())) {
                            sortList(list, sourcelist, e.getId(), true);
                            break;
                        }
                    }
                }
            }
        }
    }

}
